package com.zhonglz.service;

import java.io.InputStream;
import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

import com.zhonglz.model.SysFileInfo;
import com.zhonglz.util.result.ResultUtils;

/***
 * SysFileInfoService  文件信息
 * @author zhonglz
 * @date 2020年7月28日
 */
public interface SysFileInfoService {


	/***
	 * 根据条件查询出列表数据
	 * @param mapParam
	 * @return
	 */
	List<SysFileInfo> selectByDataList(Map<String, Object> mapParam);
	
	/**
	 *  uploadFile 
	 *  上传一个文件到服务器并返回uuid
	 *  仅支持word、图片和pdf三种格式
	 *  最后返回的文件统一转换为pdf
	 * @param file
	 * @author zhonglz
	 * @date  2019年12月12日
	 */
	ResultUtils uploadFile(MultipartFile file);
	
	/***
	 * uploadFile
	 * 上传一个文件到服务器
	 * 
	 * @param imgBase64Str
	 * @return
	 */
	ResultUtils uploadFileToBase(String imgBase64Str);

	/***
	 *  uploadFile 
	 *  上传一个文件到服务器并返回uuid
	 * @param fileUid 文件Uid
	 * @param fileRealName 文件真实名
	 * @param fileSuffix 文件后缀
	 * @param is 文件流
	 * @return
	 */
	ResultUtils uploadFile(String fileUid, String fileRealName,String fileSuffix ,InputStream is);

	/****
	 *  uploadFile 
	 *  上传一个文件到服务器并返回uuid
	 * @param fileUid 文件Uid
	 * @param fileRealName 文件真实名
	 * @param filePath 文件路径
	 * @param fileSuffix 文件后缀
	 * @return
	 */
	ResultUtils uploadFile(String fileUid, String fileRealName,String filePath,String fileSuffix);

	/****
	 *  uploadFile 
	 *  上传一个文件到服务器并返回uuid
	 * @param fileUid 文件Uid
	 * @param fileRealName 文件真实名
	 * @param filePath 文件路径
	 * @param fileSuffix 文件后缀
	 * @return
	 */
	int uploadFileInfo(String fileUid, String fileRealName, String filePath, String fileSuffix);
	/***
	 * 根据uuid查询出文件信息
	 * @param fileUid
	 * @return
	 */
	ResultUtils selectFileByUid(String fileUid);
	
	/***
	 * 根据uuid查询出文件信息
	 * @param fileUid
	 * @return
	 */
	SysFileInfo selectByPrimaryKey(String sealFile);
	
	/***
	 * 文件转换
	 * @param fileUid
	 * @return
	 */
	ResultUtils fileToPdf(SysFileInfo sysFileInfo);

	ResultUtils fileConvertByType(SysFileInfo object, Byte type);

	

	
	
}
